package net.qiqbframework.spring.stereotype;


import net.qiqbframework.modelling.command.Cmd;
import org.springframework.context.annotation.Scope;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Component;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 *
 */
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Component
@Scope("prototype")
@Cmd(value = void.class)
public @interface Command {

    @AliasFor(attribute = "value", annotation = Cmd.class)
    Class<?> value() default void.class;
}
